Para el siguiente trabajo, se realizó la muestra de distintos valores optenidos sobre visualizaciones de primates en Costa Rica de modo que estas variables puedan ser medidas y representadas mediante una tabla, un grafico de pastel y un mapa interactivo.

#Inicio de carga de datos

#Carga de librerias a utilizar
library(sf)
library(raster)
library(dplyr)
library(spData)
library(rgdal)
library(leaflet)
library(ggplot2)
library(plotly)
library(DT) 

#se geneara la variable primates con separador tabulador
Primates <- read.csv("primates-cr-registros.csv",sep = "\t", dec = ",")
Primates2 <- st_read("https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/gbif/primates-cr-registros.csv",
                    options = c(
                      "X_POSSIBLE_NAMES=decimalLongitude",
                      "Y_POSSIBLE_NAMES=decimalLatitude"
                    ),
                    quiet = TRUE
)

#Se obtiene la variable de cantones
cantones <-
  st_read(
    "https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/ign/delimitacion-territorial-administrativa/cr_cantones_simp_wgs84.geojson",
    quiet = TRUE
  )
#Se obtiene la variable de provincias
provincias <-
  st_read(
    "https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/ign/delimitacion-territorial-administrativa/cr_provincias_simp_wgs84.geojson",
    quiet = TRUE
  )
#Se crea una tabla para la representación de las variables
Primates %>%
  select(family,
         species,
         stateProvince,
         eventDate
  ) %>%
  DT::datatable(
    colnames = c("Familia", "Especie", "Provincia", "Fecha"),
    rownames = FALSE,
    options = list(
      searchHighlight = TRUE,
      language = list(url = "//cdn.datatables.net/plug-ins/1.10.11/i18n/Spanish.json"),
      pageLength = 5
    )
  )

Inicio generación del grafico

Una vez echo la anterior tabla, se procede al inicio de la creación del grafico de pastel de manera que los data.frame que se crearán acontinuación, sirvieron para recolectar y visualizar los datos que se utilizaron tanto en el siguiente grafico como en el mapa que será mostrado mas adelante.

monoarana <- 
  Primates2 %>%
  filter (species == "Ateles geoffroyi")

monocariblanca <- 
  Primates2 %>%
  filter (species == "Cebus capucinus")

monoaullador <- 
  Primates2 %>%
  filter (species == "Alouatta palliata")

monoardilla <- 
  Primates2 %>%
  filter (species == "Saimiri oerstedii")

#Una vez creado estos data.frames, se visualiza cuantas variables corresponden para cada visualización de especie y se procede a crear un archivo .csv con el fin de que este sea el que contenga los datos de los valores utilizados en el grafico de pastel.

Datosmonos <- read.csv("Datos monos.csv",sep = ",", na.strings = "", dec = ",")

#Creación de grafico de pastel
data <- Datosmonos[,c("Nombres", "Ejemplares")]
fig <- plot_ly(data, labels = ~Nombres, values = ~Ejemplares, type = "pie")
fig <- fig %>% 
  config(locale = "es") %>%
  layout(title = "Cantidad de registros para cada especie de primates en Costa Rica",
                      xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
                      yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE))
fig

Inicio creación de mapa

Para la creación del mapa se realizaron procesos como: ajuste sobre la escala de las diferentes capas que se trabajan, generación y confección de un archivo raster para la altitud y generación del mapa utilizando leaflet de manera que para cada primate, así como capa base, se agraga una capa la cual se puede activar o desactivar.

#Ajustes hacia los data.frame creados
st_crs(monoarana) = 4326
st_crs(monoardilla) = 4326
st_crs(monoaullador) = 4326
st_crs(monocariblanca) = 4326

#Generación de capa raster
alt <- getData(
  "worldclim",
  var = "alt",
  res = .5,
  lon = -84,
  lat = 10
)
#Se recorta segun lo que se vaya a utilizar
altitud <- crop(alt, extent(-86, -82.3, 8, 11.3))

# Capa de altitud recortada para los límites exactos de Costa Rica
altitud <-
  alt %>%
  crop(provincias) %>%
  mask(provincias)

#visualización de la capa
plot(altitud, main = "Altitud recortada para los límites aproximados de Costa Rica")

#Generación de mapa

  leaflet() %>%
  addProviderTiles(providers$OpenStreetMap.Mapnik, group = "OpenStreetMap") %>%
  addProviderTiles(providers$Stamen.TonerLite, group = "Stamen Toner Lite") %>%
  addProviderTiles(providers$Esri.WorldImagery, group = "Imágenes de ESRI") %>%
  addCircleMarkers(data = monoaullador,
    stroke = F,
    radius = 4,
    fillColor = '#373737',
    fillOpacity = 0.5,
    popup = paste(
      monoaullador$stateProvince,
      monoaullador$locality,
      monoaullador$eventDate,
      monoaullador$decimalLatitude,
      monoaullador$decimalLongitude,
      sep = '<br/>'
    ),
    group = "Mono aullador (Alouatta palliata)"
  ) %>%
  addCircleMarkers(data = monoarana,
                   stroke = F,
                   radius = 4,
                   fillColor = '#c29b61',
                   fillOpacity = 0.7,
                   popup = paste(
                     monoarana$stateProvince,
                     monoarana$locality,
                     monoarana$eventDate,
                     monoarana$decimalLatitude,
                     monoarana$decimalLongitude,
                     sep = '<br/>'
                   ),
                   group = "Mono Araña (Ateles geoffroyi)"
  ) %>%
  addCircleMarkers(data = monoardilla,
                   stroke = F,
                   radius = 4,
                   fillColor = '#f44611',
                   fillOpacity = 0.5,
                   popup = paste(
                     monoarana$stateProvince,
                     monoarana$locality,
                     monoarana$eventDate,
                     monoarana$decimalLatitude,
                     monoarana$decimalLongitude,
                     sep = '<br/>'
                   ),
                   group = "Mono ardilla (Saimiri oerstedii)"
  ) %>%
  addCircleMarkers(data = monocariblanca,
                   stroke = F,
                   radius = 4,
                   fillColor = 'white',
                   fillOpacity = 0.5,
                   popup = paste(
                     monoarana$stateProvince,
                     monoarana$locality,
                     monoarana$eventDate,
                     monoarana$decimalLatitude,
                     monoarana$decimalLongitude,
                     sep = '<br/>'
                   ),
                   group = "Mono cariblanca (Cebus capucinus)"
  ) %>%
  addRasterImage(
    altitud, 
    colors = c("forestgreen","yellow","tan","brown"), 
    opacity = 0.7) %>% 
  addLayersControl(
    baseGroups = c("OpenStreetMap", "Stamen Toner Lite", "Imágenes de ESRI"),
    overlayGroups = c("Mono aullador (Alouatta palliata)", "Mono Araña (Ateles geoffroyi)", "Mono ardilla (Saimiri oerstedii)", "Mono cariblanca (Cebus capucinus)")
  ) %>%
  addMiniMap(
    tiles = providers$Stamen.OpenStreetMap.Mapnik,
    position = "bottomleft",
    toggleDisplay = TRUE
  )